Website building systems are commonly used to create interactive websites. A website building system may be a standalone system, or may be embedded inside a larger editing system. It may also be on-line (i.e. application are edited and stored on a server), off-line or partially on-line (with websites being edited locally but uploaded to a central server). On-line website building system providers typically include a site hosting package as part of their offering, with site users accessing a hosting server managed by the website building system provider.
The sites are typically created and edited by users (also known as designers), and are then accessed by end-users.
A website building system typically allows the user to create and edit applications. A visually designed application consists of pages, containers and components. Pages are typically displayed separately and contain components.
Components are typically arranged in a hierarchy of containers (single page and multi-page) inside the page including atomic components. A multi-page container may display multiple mini-pages.
Components typically have attributes (e.g. size, position, color, frame type, etc.) and possibly content (e.g. contained text in a text component) as further detailed below.
Pages may use templates either general page templates or component templates. Specific cases for templates include the use of an application master page containing components replicated in all other regular pages, and the use of application header/footer (which repeat on all pages).
The website building system may also provide full site templates, which provide a template for an entire site (typically including multiple pages). Users may base their website on such full site templates, or start editing a blank site (creating the entire site structure by themselves).
The arrangement of components inside a page is known as a layout.
Pages may also include various plug-in components which may be provided or hosted by the website building system vendor itself (such as described in US Patent Publication No. 2014-0282218, entitled “DEVICE, SYSTEM, AND METHOD OF WEBSITE BUILDING BY UTILIZING DATA LISTS” published on 18 Sep. 2014 and assigned to the common assignee of the present invention) or by third party providers (i.e. third party applications).
Some of these plug-in components may be simple (e.g. a Facebook like button) and some may be complex (e.g. a complete e-Shop plug-in).
Components may be fixed (such as a given geometrical shape) or based on a content management system (CMS) (such as a component containing a picture selected from a database of available pictures). Such a database may be extended by the user though importing (in this example) additional pictures.
Components may also be based on user-specified content, (such as a text area into which the user enters text) or be based on external information (static or dynamic), such as a RSS feed displaying information from an external data source or the content of a given internet page.
Component appearance can be modified by resizing, rotation and similar operations. Their appearance and behavior can also be modified by various modifiers, such as blurring and animation.
Editing of the created graphical application is typically performed through a graphical user interface (GUI) which typically includes one or more menu hierarchies, a current page working area (also known as stage) and various additional elements such as a page manager as illustrated in FIG. 1 to which reference is now made.
The menu hierarchies typically include a “add component” sub-menu which presents a list of available components, divided into categories. The user may add an object to the stage from this menu (e.g. using an “add object” button or drag and drop from the available components palette to the stage).
The menu hierarchies may include a fixed (e.g. screen side/top/bottom) start menu and may also include floating UI elements (e.g. panels, toolbars or menus) which pop up on certain actions (e.g. clicking or right-clicking on a given component) and present options relevant for the selected component.
The menu hierarchies may also include setting panels which allow the designer to customize the attributes of a given component.
A specific set of attributes for a given components (e.g. a button having a given shape, color, text font) is referred to as component configuration. It will be appreciated that the component configuration definition does not include its content (e.g. the button's text label), position and size.
A component may have multiple states, each of may be characterized by a different state-specific configuration. For example a button may have pressed and un-pressed states.
Some or all components may have a different state used when the mouse hovers over them.
A component may represent an external data sources (e.g. a newsfeed, an e-mail mailbox etc.). Such a component may use a different configuration when messages are waiting.
The system may require that some or all attributes will remain identical between the states.